package com.qlk.odcinterface.manager;

import java.util.List;

import com.qlk.odcinterface.domain.PmsProductPromotion;
import com.qlk.odcinterface.domain.PmsProductPromotionChannel;
import com.qlk.odcinterface.domain.PmsProductPromotionItem;
import com.qlk.odcinterface.domain.query.PmsProductPromotionQuery;
import com.qlk.common.utils.page.PageUtil;
/**
 * PmsProductPromotionManager接口
 * 
 * @author zhaoyanan
 * @version 2016-4-14 13:22:58
 * 
 */
public interface PmsProductPromotionManager {

    /**
     * 批量增加对象信息
     * 
     * @param pmsProductPromotionList
     * @return
     */
    public boolean insert(List<PmsProductPromotion> pmsProductPromotionList);

    /**
     * 单个增加对象信息
     * 
     * @param pmsProductPromotion
     * @return
     */
    public boolean insert(PmsProductPromotion pmsProductPromotion);

    /**
     * 更新 对象信息
     * 
     * @param pmsProductPromotion
     *            对象信息对象
     * @return false：失败 true：成功
     */
    public boolean update(PmsProductPromotion pmsProductPromotion);

    /**
     * 根据查询Bean获取对象集合，无翻页
     * 
     * @param queryBean
     * @return
     */
    public List<PmsProductPromotion> queryPmsProductPromotionList(PmsProductPromotionQuery queryBean);

    /**
     * 根据查询Bean获取对象集合，带翻页
     * 
     * @param queryBean
     * @param pageUtil
     * @return
     */
    public List<PmsProductPromotion> queryPmsProductPromotionListWithPage(PmsProductPromotionQuery queryBean,
            PageUtil pageUtil);

    /**
     * 根据查询Bean获取对象信息总数
     * 
     * @param queryBean
     *            对象信息查询对象
     * @return 对象信息总数
     */
    public int queryPmsProductPromotionCount(PmsProductPromotionQuery queryBean);

    /**
     * 根据主键删除对象信息，该处做的是逻辑删除
     * 
     * @param pmsProductPromotion
     *            　
     * @return
     */
    public boolean delete(PmsProductPromotion pmsProductPromotion);

    /**
     * 根据主键获取对象信息
     * 
     * @param id
     *            主键字段
     * @return 对象信息
     */
    public PmsProductPromotion getPmsProductPromotionById(Integer id);

    /**
     * 根据主键集合批量删除对象信息，该处做的是逻辑删除
     * 
     * @param pmsProductPromotions
     *            PmsProductPromotion集合
     * @return
     */
    public boolean delete(PmsProductPromotion[] pmsProductPromotions);

    /**
     * 判断是否存在
     * 
     * @param pmsProductPromotion
     * @return
     */
    public boolean exist(PmsProductPromotion pmsProductPromotion);

	public boolean insertPmsProductPromotion(PmsProductPromotion pmsProductPromotion,
			List<PmsProductPromotionChannel> pmsProductPromotionChannelList,
			List<PmsProductPromotionItem> pmsProductPromotionItemList);

	public boolean updatePmsProductPromotionStatus(PmsProductPromotion pmsProductPromotion);

	public boolean updatePmsProductPromotion(PmsProductPromotion pmsProductPromotion,
			List<PmsProductPromotionChannel> pmsProductPromotionChannelList,
			List<PmsProductPromotionItem> pmsProductPromotionItemList);
}
